//
//  TJEmotionBtn.swift
//  表情键盘
//
//  Created by 唐后能 on 16/4/21.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit

// 按钮为显示状态才会走到这个类,给按钮赋值.
class TJEmotionBtn: UIButton {

    var emotion:TJEmotion?{
    
        didSet {
        
            if emotion!.emoji != nil { //是表情.
            
                setTitle(emotion!.emoji, forState: UIControlState.Normal)
                // 防止cell的复用,要给图片设置为空.
                setImage(nil, forState: UIControlState.Normal)
            }else if emotion!.fullPngPath != nil { // 是图片.
                
                // 防止cell的复用,要给title设置为空.
                setTitle(nil, forState: UIControlState.Normal)
                
                if let pngFullPath = emotion!.fullPngPath {
                    
                    setImage(UIImage(named:pngFullPath), forState: UIControlState.Normal)
                }
            }else { // 按钮为显示状态,但数据为空.-->读取沙盒数据失败的情况.此时会造成cell复用问题(拿其它button的数据来给它赋值)
                /*
                *   虽然把button的title和image赋值为空,但按钮为显示状态,还是可以点击,打印数据,UI没反应而已.
                *   最好的做法是:传递模型数据时候判断,只有emotion模型中的emoji属性或者fullPngPath有值才显示button,并传递数据进来赋值.
                */
                setTitle(nil, forState: UIControlState.Normal)
                setImage(nil, forState: UIControlState.Normal)
            }
        }
    }

}
